## Teach Yourself ActiveX in 21 Days

- Day 1
- Day 2
- Day 3
- Day 4
- Day 5
- Day 6
- Day 7
- Day 8
- Day 9
- Day 10
- Day 11
- Day 12
- Day 13
- Day 14
- Day 15
- Day 16
- Day 17
- Day 18
- Day 19
- Day 20
- Day 21

#
— A —

##
Answers to Quiz Questions

###
Day 1

1. An Internet service provider that charges a fee based on a metered rate.
2. HyperTerminal and dial-up networking
3. To integrate pre-existing technologies, and to enhance Windows features used over the Internet.
4. From computer-oriented to document-oriented program design.
5. It's class.
6. Properties, methods and events.
7. Because it is based on a standard, and is viewable by users on a variety of machines.
8. MIME (RFC 1521 & 1522).

###
Day 2

1. You use the BACKGROUND attribute of the <BODY> tag.
2. The BORDER attribute.
3. Use the regedit.exe program under the CLSID directory.

###
Day 3

1. It relieves a server of the burden of having to process multiple simultaneous requests to run an application.
2. JScript and VBScript
3. To prevent malicious or undesirable effects from network scripts.
4. A computer connected to the Internet, and a program that coordinates the interaction between a script and a script engine.
5. A script, host, and engine.
6. All the objects in the VBScript script engine and the Microsoft Internet Explorer Object Model for Scripting.
7. The Language attribute.
8. Enclose the script within comment tags.
9. Within the head element.
10. You must acknowledge Microsoft in the About box.

###
Day 4

1. No, it has no facility to interpret these tags and will ignore them.
2. The procedure for both is the same. Select or highlight the elements you want to align and press the appropriate alignment button on the tool bar. The three settings are left, right, and center.
3. Not automatically. You can use the text editor part of the ActiveX Control Pad and enter them manually, but there is no automated support.

###
Day 5

1. If you run window.mane in the browser, you get an error telling you that the object window doesn't support a member called mane. If you use just mane, VBScript makes a new variable and your value is blank.
2. windows.document.write and windows.document.writeln.
3. <SETFRAME> is the tag and TARGET is the attribute.

###
Day 6

1. The string-intensive application, because string functions outnumber math functions two-to-one in VBScript.
2. Answer MY.NAME is illegal because it has a period in it; 4Things is illegal because it starts with a number.
3. Use the Raise method of the Err object. This will allow you to raise an error with a specific number and not risk crashing your machine.

###
Day 7

1. JavaScript is well suited for both. The string and math functions are evenly balanced.
2. MY.NAME is illegal because it has a period in it. The interpreter will think it is a property or method of an object. 4Things is illegal because it starts with a number.
3. The for...in loop is specifically designed to loop through the values of your object.

###
Day 8

1. The idx and htx files go into the scripts subdirectory. The htm files go into the root directory.
2. You can put startup and initialization code in the onload event of the layout control.
3. You name a form section using the following syntax:

    <FORM ACTION="/scripts/salord.idc" METHOD="POST" NAME="ORDERFORM">

1. Where NAME = "MYNAMEHERE" names the section. You manipulate it through the Document object of the window. The Document object maintains an list of all the <FORM> sections on the web page. To submit the form you would type, document.MYNAMEHERE.submit. (Remember the case is not important.)

###
Day 9

1. The CheckValues() function would be the perfect place to check the validity of the user inputs. This function already looks at all the controls.
2. window.parent.frames[0].document.forms[0].submit()
3. Only the middle one will work. The first one uses () instead of []. The last doesn’t use submit(), and will not work

###
Day 10

1. The specific purposes of the server must be defined.
2. The console and CPU are common to both a server and a client.
3. Multimedia components (CD-ROM, sound card, graphics) are generally associated with, but not necessarily required for, ActiveX systems.
4. A dynamic IP address is assigned every time the user logs on, but remains the same throughout a given session.
5. An easy-to-remember domain name can be assigned to the address.
6. You
   You.Our.Net
   You.204.001.001.002
7. Send: SMTP
8. Retrieve: POP3
9. It requires a great deal of attention.
10. A database server processes queries over a network to a database and returns their results. Additionally, a number of higher-end database-management processes are available, depending on the server software.
11. Individual dial-up customers
    Commercial and leased-line customers

###
Day 11

1. CGI—Common Gateway Interface
   ISAPI—Internet Server Application Programmer's Interface
2. Both are used as an interface between a remote user and an external program on the server.
3. .IDC (Internet database connector)
4. .HTX (hypertext extension)
5. No, but by using the OLEISAPI.DLL, you can reference OLE DLLs compiled with Visual Basic.
6. ReadClient and WriteClient
7. Web pages, alone, are very safe. CGIs and ISAPIs, however, can be written to work all kinds of damage on a server, and the result of that damage can cascade down to every user serviced by the IPP (Internet Presence Provider).
8. The equal sign (=)
9. .EXE and .DLL
10. Reduced system resource overhead. The ISAPI DLL will run in the same space as the HTTP server itself.

###
Day 12

1. (BSD) Berkeley Software Development UNIX
2. A WinSock application
3. Domain format and IP address format
4. GetHostByName()
5. TCP and UDP
6. LocalPort
7. RemotePort
8. RequestID or Connection ID
9. The name of the variable into which the data is to be read, and the data type of the incoming stream.
10. The Quit method

###
Day 13

1. A normal console application will not link with MFC because Microsoft Visual C++ doesn't set the MFC library as required in the project settings.
2. GetFtpConnection, GetHttpConnection, GetGopherConnection
3. If you don't check and you continue with the code execution, you may have an exception and your code will terminate improperly.
4. CInternetException
5. The _T macro lets you compile code in the three character types (Unicode, MBCS, and SBCS) without having to handle each case specifically.

###
Day 14

1. There can be many conferences managed by only one conference manager.
2. A user is a potential member of a conference but has not joined the conference yet while a member has joined the conference.
3. NetMeeting.

###
Day 15

1. 1. OLE is the basis for object-oriented programming.
   2. VBXs were the first custom controls. They are used to allow programming environments such as Visual Basic to interact with complex features of their machines (that is, networks, modems, and so on).
   3. OCXs are very similar to VBXs with the additional capability to more powerfully interact with a machine and, often, to provide a way of interacting with more powerful OLE features than those used by VBXs.
2. The middle of the century.
3. Programmatic and scripting.
4. DCOM.
5. JavaScript or JScript
6. Visual Basic.
7. ShDocVW.DLL.
8. Component object model and distributed COM, respectively.
9. Windows NT 4.0
10. HTML pages and OLE Container applications.
11. Sun Microsystems.
12. IUnknown and self-registering.
13. The addition of machine-to-machine programming methods.
14. All operating systems that are run on networked machines.
15. Windows 95 and Windows NT 4.0+
16. (UserID, Password, Location(Optional))
17. .INF files.
18. A designer's license.
19. JavaScript is an HTML script, and a Java applet is an HTML object.
20. Visual Basic for Applications.

###
Day 16

1. <HTML>/<HTML>, <HEAD></HEAD>, <TITLE></TITLE>, <BODY></BODY>
2. <BODY></BODY>
3. <OBJECT></OBJECT>
4. scripts, objects
5. height, width
6. <IMG>
7. World Wide Web Consortium (W3 Organization)
8. Ctrl+T
9. RegSvr32.exe
10. No. A programmer might wish to reference a control that the user already has installed on the machine without making it available on the Net. If the user does not have the control, it will not be enabled on the Web page when the user views it. Control developers who develop proprietary controls might wish to ensure that those without a license to use the control can't use it. To do this, the control developer simply declines to include a reference to the control's distribution site; the content can have this small level of security.

###
Day 17

1. Acquisition, Verification, Installation
2. <OBJECT>
3. Code
4. CODETYPE
5. .OCX, .DLL, .EXE
6. .INF
7. DestDir=11
8. OLE objects, Non-OLE objects, document content.
9. Base Security Layer SDK
10. Trust verification service
11. Creation—Safe when scripted.
    Initialization—Safe when standing alone.
12. IObjectSafety
13. The original source of the control.
    Integrity of the control since its release.
14. Commercial certification and individual certification
15. Private key and public key
16. PICS—Platform for Internet Content Security
17. Internet Ratings API

###
Day 18

1. A standard hierarchy of objects against which an ActiveX Program operates.
2. 1. doc—docDocument
   2. w—wWindow
   3. scr—scrScript
   4. fr—frFrames(0)
   5. frm—frmForm(0)
3. The Window object.
4. Frames()
5. Frames()
6. 0 (Frames(0))
7. History
8. Port
9. host
10. hostname

###
Day 19

1. <FORM></FORM>
2. <INPUT TYPE = ... NAME = ...>
3. Value
4. lstAllOfUs
5. CheckBox
6. MaxLength property
7. GET to retrieve data; SEND to post data
8. The TYPE attribute.
9. The ISMAP attribute.
10. X1—Left; X2—Top; X3—Bottom; X4—Right

###
Day 20

1. FTP.Connect RemoteHost
   FTP.Authenticate UserID, Password
2. From, To, Subject
3. FTP.ChangeDir
4. NNTP.SelectGroup
5. NNTP.Connect RemoteHost
6. No. Some news servers require a UserID and Password, but most only allow access from within their own network and therefore do not require a UserID or Password.
7. POP3_RefreshMessageCount
8. 2 - DocHeaders
9. Control

###
Day 21

1. [Embedding]
2. System.DAT
3. RegClean.EXE
4. DLLRegisterServer and DLLUnRegisterServer
5. Ver.DLL
6. Visual Basic
   Visual C++
7. MFC40.DLL
   MSVCRT.DLL
   OLEPro32.DLL
8. All of them.
9. QueryInterface
   AddRef
   Release
10. Instantiation